package com.power.sifa.statistics.api;

import com.plf.common.domain.ResponseDTO;
import com.power.sifa.statistics.model.pageInfo.CameraPageInfo;
import com.power.sifa.statistics.model.pageInfo.CorrectCountPageInfo;
import com.power.sifa.statistics.model.pageInfo.MarkPointPageInfo;
import com.power.sifa.statistics.model.vo.MarkPointDetailsVO;
import com.power.sifa.statistics.model.vo.MarkPointVO;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * BI大屏展示统计 Feign
 */
public interface ICorrectionCountFeign {


    /**
     * 查询标记点列表
     */
    @PostMapping("/crc_count/markPointList")
    ResponseDTO<List<MarkPointVO>> markPointList(@RequestBody MarkPointPageInfo pageInfo);

    /**
     * 查询标记点详情
     */
    @GetMapping("/crc_count/markPointDetails")
    ResponseDTO<MarkPointDetailsVO> markPointDetails(@RequestParam("warningId") String warningId);

    /**
     * 统计社矫人员及社矫人员分类
     */
    @PostMapping("/crc_count/countCorrectPersonInfo")
    ResponseDTO countCorrectPersonInfo(@RequestBody List<String> deptIds);


    /**
     * 统计社矫人员罪名
     */
    @PostMapping("/crc_count/countCorrectCrime")
    ResponseDTO countCorrectCrime(@RequestBody List<String> deptIds);


    /**
     * 统计社矫人员区县分布
     */
    @PostMapping("/crc_count/countCorrectPersonLocation")
    ResponseDTO countCorrectPersonLocation(@RequestBody List<String> deptIds);

    /**
     * 按时间查询的告警统计
     *
     * @return
     */
    @PostMapping("/crc_count/countWarningByTime")
    ResponseDTO countWarningByTime(@RequestBody CorrectCountPageInfo pageInfo);


    /**
     * 通过条件查询对应的风险预警数据
     *
     * @return
     */
    @PostMapping("/crc_count/countWarningInfoByCondition")
    ResponseDTO countWarningInfoByCondition(@RequestBody CorrectCountPageInfo pageInfo);


    /**
     * 通过条件查询当前的人员坐标点数据
     *
     * @return
     */
    @PostMapping("/crc_count/getPersonMarkPoint")
    ResponseDTO getPersonMarkPoint(@RequestBody MarkPointPageInfo pageInfo);


    /**
     * 通过公安数据查询当前人员的前后范围的坐标点
     *
     * @param gaId      公安id
     * @param timeScope 时间范围
     * @return
     */
    @GetMapping("/crc_count/getPersonMoveTrack")
    ResponseDTO getPersonMoveTrack(@RequestParam("gaId") Integer gaId, @RequestParam("timeScope") Integer timeScope);


    /**
     * 查询全部的摄像头坐标点信息
     *
     * @return
     */
    @GetMapping("/crc_count/getCameraMarkPoint")
    ResponseDTO getCameraMarkPoint();


    /**
     * 调用腾讯api通过坐标点的经纬度查询对应的名称
     *
     * @param point = lat,lng 纬度,经度
     * @return
     */
    @GetMapping("/crc_count/getTencentMapAddress")
    ResponseDTO getTencentMapAddress(@RequestParam("point") String point);


    /**
     * 获取摄像头详情信息
     *
     * @param cameraPageInfo
     * @return
     */
    @PostMapping("/crc_count/getCameraInfoDetail")
    ResponseDTO getCameraInfoDetail(@RequestBody CameraPageInfo cameraPageInfo);


    /**
     * 获取监控情况
     * @param pageInfo
     * @return
     */
    @PostMapping("/crc_count/getMonitorCondition")
    ResponseDTO getMonitorCondition(@RequestBody CorrectCountPageInfo pageInfo);

    @PostMapping("/crc_count/getMonitoringList")
    ResponseDTO getMonitoringList(@RequestBody CorrectCountPageInfo pageInfo);


    @GetMapping("/crc_count/getWarningPhotoMap")
    ResponseDTO getWarningPhotoMap(@RequestParam("gaId")Integer gaId, @RequestParam("timeScope")Integer timeScope);
}
